#ifndef __JSON_NODE_MM_H__
#define __JSON_NODE_MM_H__

#include <string>
#include <glib-object.h>
#include <json-glib/json-glib.h>

#include "JsonArrayMM.hpp"
#include "JsonObjectMM.hpp"

class JsonObjectMM;

class JsonNodeMM {
private:
  JsonNode *node;
public:
  JsonNodeMM(JsonNode *node);
  ~JsonNodeMM();

  //void set_array(JsonArrayMM *array);
  //void set_object(JsonObjectMM *object);
  void set_string(std::string value);

  JsonArrayMM *get_array();
  JsonObjectMM *get_object();
  bool get_boolean();
  double get_double();
  long long get_int();
  std::string get_string();
  //JsonNodeMM *get_parent();
  std::string type_name();
  //get_value_type
  //get_node_type
  bool is_null();
};

#endif /* __JSON_NODE_MM_H__ */
